#ifndef _CH9326_LIB_H
#define _CH9326_LIB_H
#ifdef __cplusplus
extern "C" {
#endif

/*********************************************************************  
* º¯ Êý Ãû: ch9326_find
* ¹¦ÄÜÃèÊö: Ì½²âch9326Éè±¸£¬´ò¿ªÉè±¸Ç°±ØÐëµ÷ÓÃ
* º¯ÊýËµÃ÷: 
* µ÷ÓÃº¯Êý: libusb_init(from libusb.a)
*			libusb_get_device_list(from libusb.a)
*			libusb_get_device_descriptor(from libusb.a)
* È«¾Ö±äÁ¿: ch9326[]
* Êä    Èë: ÎÞ
* ·µ    »Ø: ²Ù×÷³É¹¦ : ÕÒµ½µÄÉè±¸Êý(>0)£¬×î¶àÖ§³Ö16¸öÉè±¸Í¬Ê±¹¤×÷, ²Ù×÷Ê§°Ü : 0
* Éè ¼Æ Õß: tech32                         ÈÕÆÚ: 2011-11
* ÐÞ ¸Ä Õß:                                ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern
unsigned char
ch9326_find(
    void
    );

/*********************************************************************
* º¯ Êý Ãû: ch9326_open
* ¹¦ÄÜÃèÊö: ´ò¿ªÉè±¸£¬´´½¨½ÓÊÕÊý¾ÝÏß³Ì
* º¯ÊýËµÃ÷:
* µ÷ÓÃº¯Êý: libusb_open(from libusb.a)
* È«¾Ö±äÁ¿: ch9326[]
* Êä    Èë: Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
* ·µ    »Ø: ²Ù×÷³É¹¦ : ·µ»Ø1, ²Ù×÷Ê§°Ü : ·µ»Ø0
* Éè ¼Æ Õß: tech32                         ÈÕÆÚ: 2011-11
* ÐÞ ¸Ä Õß: tech36                         ÈÕÆÚ: 2017-11
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern
unsigned char
ch9326_open(
    unsigned char index
    );

/*********************************************************************
* º¯ Êý Ãû: ch9326_close
* ¹¦ÄÜÃèÊö: ¹Ø±ÕÉè±¸
* º¯ÊýËµÃ÷: 
* µ÷ÓÃº¯Êý: libusb_close(from libusb.a)
* È«¾Ö±äÁ¿: 
* Êä    Èë: Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1
			¸öÉè±¸(n<=16)
* ·µ    »Ø: 
			²Ù×÷³É¹¦ : 1
			²Ù×÷Ê§°Ü : 0
* Éè ¼Æ Õß: tech32                         ÈÕÆÚ: 2011-11
* ÐÞ ¸Ä Õß:                                ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern
unsigned char
ch9326_close(
    unsigned char index
    );

/*********************************************************************
* º¯ Êý Ãû: ch9326_set
* ¹¦ÄÜÃèÊö: ÉèÖÃÊý¾ÝÍ¨Ñ¶¸ñÊ½
* º¯ÊýËµÃ÷: 
* µ÷ÓÃº¯Êý: libusb_control_transfer(from libusb.a)
* È«¾Ö±äÁ¿: 
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
*			unsigned char rate : 01 = 300bps, 02 = 600bps, 03 = 1200bps, 04 = 2400bps, 05 = 4800bps, 06 = 9600(default)bps,
*								 07 = 14400bps, 08 = 19200bps, 09 = 28800bps, 10 = 38400bps, 11 = 57600bps, 12 = 76800bps,
*								 13 = 115200bps
*			unsigned char check : 01 = odd, 02 = even, 03 = space, 04 = none(default)
*			unsigned char stop_bits : 01 = 1bit stop bit(default)
*									  02 = 2bit stop bit
*			unsigned char data_bits : 01 = 5bit data bit, 02 = 6bit data bit, 03 = 7bit data bit, 04 = 8bit data bit(default)
*			unsigned char interval :	0x10 = 3ms(default), 0x20 = 6ms, 0x30 = 9ms
* ·µ    »Ø: ²Ù×÷³É¹¦ : ·µ»Ø1, ²Ù×÷Ê§°Ü : ·µ»Ø0
* Éè ¼Æ Õß: tech32                         ÈÕÆÚ: 2011-11
* ÐÞ ¸Ä Õß:                                ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern
unsigned char
ch9326_set(
	unsigned char index,
	unsigned char rate,
	unsigned char check,
	unsigned char stop_bits,
	unsigned char data_bits,
	unsigned char interval
	);

/*********************************************************************
* º¯ Êý Ãû: ch9326_send
* ¹¦ÄÜÃèÊö: ·¢ËÍÊý¾Ý
* º¯ÊýËµÃ÷: 
* µ÷ÓÃº¯Êý: libusb_interrupt_transfer(from libusb.a)
* È«¾Ö±äÁ¿: 
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
			unsigned char *data : ·¢ËÍÊý¾Ý»º³åÇø		
			unsigned long length : ·¢ËÍÊý¾Ý³¤¶È
* ·µ    »Ø: ²Ù×÷³É¹¦ : ·µ»Ø·¢ËÍµÄÊý¾Ý³¤¶È, ²Ù×÷Ê§°Ü : ·µ»Ø0
* Éè ¼Æ Õß: tech32                         ÈÕÆÚ: 2011-11
* ÐÞ ¸Ä Õß:                                ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern
unsigned long
ch9326_send(
	unsigned char index,
	unsigned char *data,
	unsigned long length
	);

/*********************************************************************
* º¯ Êý Ãû: ch9326_recv
* ¹¦ÄÜÃèÊö: ½ÓÊÕÊý¾Ý
* º¯ÊýËµÃ÷: 
* µ÷ÓÃº¯Êý: 
* È«¾Ö±äÁ¿: 
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
			unsigned char *data : ½ÓÊÕÊý¾Ý»º³åÇø
			unsigned long length : ½ÓÊÕÊý¾Ý³¤¶È
* ·µ    »Ø: ²Ù×÷³É¹¦ : ·µ»Ø·¢ËÍµÄÊý¾Ý³¤¶È, ²Ù×÷Ê§°Ü : ·µ»Ø0
* Éè ¼Æ Õß: tech32                         ÈÕÆÚ: 2011-11
* ÐÞ ¸Ä Õß:                                ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern
unsigned long
ch9326_recv(
	unsigned char index,
    char *data,
	unsigned long length
	);

/*********************************************************************
* º¯ Êý Ãû: ch9326_set_gpiodata
* ¹¦ÄÜÃèÊö:
* º¯ÊýËµÃ÷:
* µ÷ÓÃº¯Êý: libusb_control_transfer(from libusb.a)
* È«¾Ö±äÁ¿:
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
*			unsigned char data : Î»0ÓÃÀ´ÉèÖÃIO1µçÆ½£¬0ÎªÊä³öµÍµçÆ½¡¢1ÎªÊä³ö¸ßµçÆ½
*								 Î»1ÓÃÀ´ÉèÖÃIO2µçÆ½£¬0ÎªÊä³öµÍµçÆ½¡¢1ÎªÊä³ö¸ßµçÆ½
* ·µ    »Ø:
            ²Ù×÷³É¹¦ : 1
            ²Ù×÷Ê§°Ü : 0
* Éè ¼Æ Õß: tech32                         ÈÕÆÚ: 2011-11
* ÐÞ ¸Ä Õß: tech33                         ÈÕÆÚ: 2014-11
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern unsigned char
ch9326_set_gpiodata(
    unsigned char index,
    unsigned char data
    );

/*********************************************************************
* º¯ Êý Ãû: ch9326_set_gpiodir
* ¹¦ÄÜÃèÊö:
* º¯ÊýËµÃ÷:
* µ÷ÓÃº¯Êý: libusb_control_transfer(from libusb.a)
* È«¾Ö±äÁ¿:
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
*			unsigned char dir : Î»0ÓÃÀ´ÉèÖÃIO1·½Ïò£¬0ÎªÊäÈë¡¢1ÎªÊä³ö
*						 		Î»1ÓÃÀ´ÉèÖÃIO2·½Ïò£¬0ÎªÊäÈë¡¢1ÎªÊä³ö
* ·µ    »Ø:
            ²Ù×÷³É¹¦ : 1
            ²Ù×÷Ê§°Ü : 0
* Éè ¼Æ Õß: tech32                         ÈÕÆÚ: 2011-11
* ÐÞ ¸Ä Õß: tech33                         ÈÕÆÚ: 2014-11
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern unsigned char
ch9326_set_gpiodir(
    unsigned char index,
    unsigned char dir
    );

/*********************************************************************
* º¯ Êý Ãû: ch9326_set_gpio
* ¹¦ÄÜÃèÊö:
* º¯ÊýËµÃ÷:
* µ÷ÓÃº¯Êý: libusb_control_transfer(from libusb.a)
* È«¾Ö±äÁ¿:
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
*			unsigned char dir : Î»0ÓÃÀ´ÉèÖÃIO1·½Ïò£¬0ÎªÊäÈë¡¢1ÎªÊä³ö
*						 		Î»1ÓÃÀ´ÉèÖÃIO2·½Ïò£¬0ÎªÊäÈë¡¢1ÎªÊä³ö
*			unsigned char data : Î»0ÓÃÀ´ÉèÖÃIO1µçÆ½£¬0ÎªÊä³öµÍµçÆ½¡¢1ÎªÊä³ö¸ßµçÆ½
*								 Î»1ÓÃÀ´ÉèÖÃIO2µçÆ½£¬0ÎªÊä³öµÍµçÆ½¡¢1ÎªÊä³ö¸ßµçÆ½
* ·µ    »Ø:
            ²Ù×÷³É¹¦ : 1
            ²Ù×÷Ê§°Ü : 0
* Éè ¼Æ Õß: tech32                         ÈÕÆÚ: 2011-11
* ÐÞ ¸Ä Õß:                                ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern unsigned char
ch9326_set_gpio(
    unsigned char index,
    unsigned char dir,
    unsigned char data
    );

/*********************************************************************
* º¯ Êý Ãû: ch9326_get_gpio
* ¹¦ÄÜÃèÊö:
* º¯ÊýËµÃ÷:
* µ÷ÓÃº¯Êý: libusb_control_transfer(from libusb.a)
* È«¾Ö±äÁ¿:
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
*			unsigned char data : Î»5±íÊ¾IO1µÄÊäÈëµçÆ½×´Ì¬£¬Îª1Ôò±íÊ¾¸ßµçÆ½£¬Îª0±íÊ¾µÍµçÆ½
                                 Î»3±íÊ¾IO2µÄÊäÈëµçÆ½×´Ì¬£¬Îª1Ôò±íÊ¾¸ßµçÆ½£¬Îª0±íÊ¾µÍµçÆ½
* ·µ    »Ø:
            ²Ù×÷³É¹¦ : 1
            ²Ù×÷Ê§°Ü : 0
* Éè ¼Æ Õß: tech32                         ÈÕÆÚ: 2011-11
* ÐÞ ¸Ä Õß:                                ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern unsigned char
ch9326_get_gpio(
    unsigned char index,
    char *data
    );

/*********************************************************************
* º¯ Êý Ãû: ch9326_connected
* ¹¦ÄÜÃèÊö: ½ÓÊÕÊý¾Ý
* º¯ÊýËµÃ÷:
* µ÷ÓÃº¯Êý:
* È«¾Ö±äÁ¿:
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
* ·µ    »Ø: ²Ù×÷³É¹¦ : ·µ»Ø1, ²Ù×÷Ê§°Ü : ·µ»Ø0
* Éè ¼Æ Õß: tech33                        ÈÕÆÚ: 2014-11
* ÐÞ ¸Ä Õß:                                      ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern unsigned char ch9326_connected(unsigned char index);

/*********************************************************************
* º¯ Êý Ãû: ch9326_get_manufacturer_string
* ¹¦ÄÜÃèÊö: »ñÈ¡³§ÉÌ×Ö·û´®ÃèÊö·û
* º¯ÊýËµÃ÷: 
* µ÷ÓÃº¯Êý: libusb_get_string_descriptor
* È«¾Ö±äÁ¿: 
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
			unsigned char *data : Êý¾Ý»º³åÇøÊ×µØÖ·
			unsigned long length : »º³åÇø´óÐ¡
* ·µ    »Ø: ²Ù×÷³É¹¦ : ·µ»Ø1, ²Ù×÷Ê§°Ü : ·µ»Ø0
* Éè ¼Æ Õß: tech36                         ÈÕÆÚ: 2017-5
* ÐÞ ¸Ä Õß:                                      ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern unsigned char
ch9326_get_manufacturer_string(
	unsigned char index,
	unsigned char *data,
	unsigned long length
	);

/*********************************************************************
* º¯ Êý Ãû: ch9326_get_product_string
* ¹¦ÄÜÃèÊö: »ñÈ¡²úÆ·×Ö·û´®ÃèÊö·û
* º¯ÊýËµÃ÷: 
* µ÷ÓÃº¯Êý: libusb_get_string_descriptor
* È«¾Ö±äÁ¿: 
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
			unsigned char *data : Êý¾Ý»º³åÇøÊ×µØÖ·
			unsigned long length : »º³åÇø´óÐ¡
* ·µ    »Ø: ²Ù×÷³É¹¦ : ·µ»Ø1, ²Ù×÷Ê§°Ü : ·µ»Ø0
* Éè ¼Æ Õß: tech36                         ÈÕÆÚ: 2017-5
* ÐÞ ¸Ä Õß:                                      ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern unsigned char
ch9326_get_product_string(
	unsigned char index,
	unsigned char *data,
	unsigned long length
	);

/*********************************************************************
* º¯ Êý Ãû: ch9326_get_serial_number_string
* ¹¦ÄÜÃèÊö: »ñÈ¡ÐòÁÐºÅ×Ö·û´®ÃèÊö·û
* º¯ÊýËµÃ÷: 
* µ÷ÓÃº¯Êý: libusb_get_string_descriptor
* È«¾Ö±äÁ¿: 
* Êä    Èë: unsigned char index : Éè±¸Ë÷ÒýºÅ£¬0¶ÔÓ¦µÚ1¸öÉè±¸£¬1¶ÔÓ¦µÚ2¸öÉè±¸... n¶ÔÓ¦µÚn+1¸öÉè±¸(n<=16)
			unsigned char *data : Êý¾Ý»º³åÇøÊ×µØÖ·
			unsigned long length : »º³åÇø´óÐ¡
* ·µ    »Ø: ²Ù×÷³É¹¦ : ·µ»Ø1, ²Ù×÷Ê§°Ü : ·µ»Ø0
* Éè ¼Æ Õß: tech36                         ÈÕÆÚ: 2017-5
* ÐÞ ¸Ä Õß:                                      ÈÕÆÚ:
* °æ    ±¾: VER 1.0.0.0
***********************************************************************/
extern unsigned char
ch9326_get_serial_number_string(
	unsigned char index,
	unsigned char *data,
	unsigned long length
	);

#ifdef __cplusplus
}
#endif

#endif // _CH9326_LIB_H
